/**
 * @properties={typeid:24,uuid:"AA799792-F633-4917-8E03-F62BAFD32046"}
 */
function nro_a_letra(numero) {
	var letras = ''
	var decimal = numero *100 % 100
	numero = numero - decimal /100
	var st = utils.numberFormat(numero, '000000000000')
	var j = 0
	for (var i = 0; i < st.length; i += 3)
	{
		var pos = st.length - i
		var p = procesar(st.substr(pos-3,3), j)
		letras = p + letras
		j++
	}
	if (decimal != 0)
		letras += ' con ' + utils.numberFormat(decimal, '00') + '/100' // 03/10/2010 formateo en 2 decimales
	return letras
}

/**
 * @properties={typeid:24,uuid:"62EEACF0-45DB-49DC-A513-CD8A7268B0EE"}
 */
function procesar (cadena, j)
{
	var c
	
	var centena = cadena[0]
	var decena = cadena[1]
	var unidad = cadena[2]

	if (cadena == '000')
		return ''
	
	var c2
	
	if (cadena == '001')
	{
		switch( j )
		{
		case 0: c2 = 'uno'					;		 	break;
		case 1: c2 = ' mil ' 				;			break;
		case 2: c2 = ' un millon ' 			;   		break;
		case 3: c2 = ' mil millones ' 		;   		break;
		case 4: c2 = ' un billon '			;	  		break;
		default : c2 = c;		  						break;
		}
		return c2
	}
	
	c = procesarDecena(decena,unidad)
	
	c = procesarCentena(centena,c)
	
	switch( j )
	{
	case 1: c2 = c + ' mil ' 				;			break;
	case 2: c2 = c + ' millones ' 			;   		break;
	case 3: c2 = c + ' mil millones ' 		;   		break;
	case 4: c2 = c + ' billones '			;	  		break;
	default : c2 = c;		  							break;
	}
	return c2
}

/**
 * @properties={typeid:24,uuid:"C26666FB-B6A9-40D3-A749-93DEB651A68E"}
 */
function procesarCentena(centena,c)
{
	var c2
	
	switch( centena )
	{
	case '1': c2 = 'ciento ' 		+c;		break;
	case '2': c2 = 'doscientos ' 	+c;   	break;
	case '3': c2 = 'trescientos ' 	+c;   	break;
	case '4': c2 = 'cuatrocientos '	+c;  	break;
	case '5': c2 = 'quinientos ' 	+c;		break;
	case '6': c2 = 'seiscientos ' 	+c;   	break;
	case '7': c2 = 'setecientos ' 	+c;  	break;
	case '8': c2 = 'ochocientos ' 	+c;  	break;
	case '9': c2 = 'novecientos ' 	+c;   	break;
	default : c2 = c;		  				break;
	}
	return c2
	
}

/**
 * @properties={typeid:24,uuid:"185166A4-E0FE-4721-8EAF-18FEAC47CAF2"}
 */
function procesarDecena (decena, unidad)
{
	var c
	switch( decena )
	{
	case '1': c = procesarUnidadPrimeraDecena (unidad);   	break;
	case '2': c = procesarUnidadSegundaDecena(unidad);    	break;
	case '3': c = 'treinta' + procesaUnidad(unidad);   		break;
	case '4': c = 'cuarenta' + procesaUnidad(unidad);  		break;
	case '5': c = 'cincuenta' + procesaUnidad(unidad); 		break;
	case '6': c = 'sesenta' + procesaUnidad(unidad);   		break;
	case '7': c = 'setenta' + procesaUnidad(unidad);  	 	break;
	case '8': c = 'ochenta' + procesaUnidad(unidad);  		break;
	case '9': c = 'noventa' + procesaUnidad(unidad);   		break;
	default : c = procesaUnidadCeroDecena(unidad);		  	break;
	}
	return c
}

/**
 * @properties={typeid:24,uuid:"4BCCF6C0-8EC0-4134-8EE1-375248ACC361"}
 */
function procesarUnidadPrimeraDecena (unidad)
{
	var c
	switch( unidad )
	{
	case '1': c = 'once';  			break;
	case '2': c = 'doce';   		break;
	case '3': c = 'trece';   		break;
	case '4': c = 'catorce';  		break;
	case '5': c = 'quince'; 		break;
	case '6': c = 'dieciseis';   	break;
	case '7': c = 'diecisiete';   	break;
	case '8': c = 'dieciocho';   	break;
	case '9': c = 'diecinueve';   	break;
	default : c = 'diez';			break;
	}
	return c
}

/**
 * @properties={typeid:24,uuid:"FCF5196A-D064-424D-BC5E-FCBDEAC07C80"}
 */
function procesaUnidad(unidad)
{
	var c
	switch( unidad )
	{
	case '1': c = ' y un';  			break;
	case '2': c = ' y dos';   			break;
	case '3': c = ' y tres';   			break;
	case '4': c = ' y cuatro';  		break;
	case '5': c = ' y cinco'; 			break;
	case '6': c = ' y seis';   			break;
	case '7': c = ' y siete';   		break;
	case '8': c = ' y ocho';   			break;
	case '9': c = ' y nueve';   		break;
	default : c = '';					break;
	}	
	return c
}

/**
 * @properties={typeid:24,uuid:"6AFFDE0D-C305-422B-972B-E583AD6C1BE1"}
 */
function procesaUnidadCeroDecena(unidad)
{
	var c
	switch( unidad )
	{
	case '1': c = 'uno';  	break;
	case '2': c = 'dos';   	break;
	case '3': c = 'tres';  	break;
	case '4': c = 'cuatro';	break;
	case '5': c = 'cinco'; 	break;
	case '6': c = 'seis';  	break;
	case '7': c = 'siete'; 	break;
	case '8': c = 'ocho';  	break;
	case '9': c = 'nueve'; 	break;
	default : c = '';		break;
	}	
	return c
}

/**
 * @properties={typeid:24,uuid:"52F37782-E539-40DA-8F57-528B63AF3C58"}
 */
function procesarUnidadSegundaDecena(unidad)
{
	var c
	switch( unidad )
	{
	case '1': c = 'veintiun';  		break;
	case '2': c = 'veintidos';  	break;
	case '3': c = 'veintitres';   	break;
	case '4': c = 'veinticuatro';	break;
	case '5': c = 'veinticinco'; 	break;
	case '6': c = 'veintiseis';   	break;
	case '7': c = 'veintisiete';  	break;
	case '8': c = 'veintiocho';   	break;
	case '9': c = 'veintinueve';  	break;
	default : c = 'veinte';			break;
	}	
	return c	
}

/**
 *
 * @arreglo = arreglo con datos de cabecera de subidario (fecha, tipo_id, nro_asiento,concepto,subdiario_id)
 * 
 * @ds_asiento = dataset con datos del detalle de subdiario (plan_id, d_h, importe, concepto, fecha_devenga)
 * 
 * @properties={typeid:24,uuid:"27A99821-D3EA-4C36-9F34-3DCECC2618F5"}
 */
function genera_asiento_subdiario(arreglo, ds_asiento) {
	/** @type {JSFoundSet<db:/infocom/subdiarios_cab>}*/
	var fs = databaseManager.getFoundSet('infocom','subdiarios_cab')
	
	fs.newRecord()
	fs.fecha = arreglo[0]
	fs.tipo_id = arreglo[1]
	fs.nro_asiento = arreglo[2]
	fs.concepto = arreglo[3]
	fs.subdiario_id = arreglo[4]
	                           
	for (var i = 1 ; i<=ds_asiento.getMaxRowIndex() ; i++)
	{
		fs.subdiarios_cab_to_subdiarios_mod.newRecord()
		
		fs.subdiarios_cab_to_subdiarios_mod.plan_id = ds_asiento.getValue(i, 1)
		fs.subdiarios_cab_to_subdiarios_mod.d_h = ds_asiento.getValue(i, 2)
		fs.subdiarios_cab_to_subdiarios_mod.importe = ds_asiento.getValue(i, 3)
		fs.subdiarios_cab_to_subdiarios_mod.concepto = ds_asiento.getValue(i, 4)
		fs.subdiarios_cab_to_subdiarios_mod.fecha_devenga = ds_asiento.getValue(i, 5)
	}
	
}

/**
 * 
 * Se le pasa un numero y lo devuelve redondeado con 2 decimales
 * 
 * @properties={typeid:24,uuid:"ABC9AF5C-5405-4EC1-B3C9-A34C00408D5F"}
 */
function redondeo(numero) {
	var n
	if (numero == null)
	{
		n = 0
	}
	else
	{
		n = Math.round(numero * 100) / 100
	}
	return n
}
